package cn.itcast.demo3;


/*
    多态的好处:
             可维护性
             可扩展性.
    多态的弊端:
            父类引用不能使用子类的特有成员
    解决方案:
            通过"类型转换"实现,
    注意:
         只能在继承层次内进行转换,否则会报ClassCastException异常
         将父类对象转换成子类之前，使用instanceof进行检查
         instanceof关键字的用法:
                对象名 instanceof 数据染型
                意思是判断前边的对象是否是后边的数据类型:
 */
public class Test {
    public static void main(String[] args) {
//创建多态对象
        Animal an=new Dog();
        //调用eat
        an.eat();

        //Dog dog=(Dog)an;
        //dog.watch();

        //优化
        if(an instanceof Dog){
            Dog dog=(Dog)an;
            dog.watch();
        }

    }
}
